package Model.Gates;

import java.util.logging.Level;
import Model.Main.Wire; // kell a hibakezelés miatt.
/**
 * A villogó ledek és a gonosz boszorkány története.
 ** @author citromos ezustfoka
 */
public class Led extends Gate {

    /**
     * konstruktor
     * 
     */
    public Led(String name) {
        this.name = name;
        maxInputs = 1;
        this.reset();
        logger.log(Level.CONFIG, "" + this.getClass().getName() + " " + this.getName() + " created with " + maxInputs + " input(s).");
        /**
         * Inicializáljuk az inputsWired listát.
         */
        initInputsWired();
    }

    /**
     *  A bemenet értékének beállítása.
     * A bemenet száma és az érték a paraméter. Ezt hívja meg a wire.
     * @param inputNumber A bemenet száma
     * @param val A bemenet értéke.
     * @return
     *
     */
    @Override
    public void setInput(int inputNumber, Boolean val) throws Exception {
        // meghívjuk a superclassban lévő függvényt, ami az értéket, a stabilitást
        // állítja be, és a loggolást végzi el.
        super.setInput(inputNumber, val);
        // "kigyujtjuk a ledet"
        this.val = val;

        logger.log(Level.FINEST, "" + this.getClass().getName() + " " + this.getName() + " value is " + this.val + ".");
    }

    /**
     * Ennek nincsen kimenetele.
     * @param w
     * @param inputNumber
     */
    @Override
    public void setOutputWire(Wire w, int inputNumber) {
        throw new UnsupportedOperationException("No outputs for " + this);
    }
}
